<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>

    //～加油～
    /*
      1. 创建一个对象有那两种方式
        字面量方式
        构造函数方式
       */

    /*
      2. 请举例说明，对象的基本操作的两种语法
        对象的curd操作
          - 点语法
          - 数组关联语法
        var obj = {};
        
        // 添加
        // 点语法
        obj.name = "kern" // 如果该对象中没有name这个键名，则是添加一条数据，反之则是修改
        obj["name"] = "kern" // 如果该对象中没有name这个键名，则是添加一条数据，反之则是修改

        。。。。
      */

    /*
      3.对象的curd，两种语法有什么区别 
      */
    //  主要区别体现在操作键名以及解析变量两方面
    /* 
        点语法和数组关联语法，在键名为符合命名规则规范的操作上并无区别，
        但在操作如：纯数字键名以及特殊符号键名时则只能使用数组关联语法
        并且数组关联语法可以解析变量，但点语法不行。
    */


    /*
      4.对象怎么遍历？那个是键名，那个是键值
      */
    // 由于对象是一个无序数据的集合项，所以在需要遍历对象时需要通过for in 方法进行遍历

    /* 
     for(var k in obj){
       k：是键名
       obj[k]：是键值
     }
    */

    /*
      5.简单和复杂数据类型在存储上的区别是什么？
      那赋值和比较上的区别又是什么？
      */
    /* 
       简单数据类型：数据保存在栈内存中
       复杂数据类型：数据保存在堆内存中

       在赋值上，简单数据类型是直接将在栈中的值 赋予一个变量，而复杂数据类型则是将存在栈中的指针赋予变量。
       在比较上，简单数据类型是值与值的比较，复杂数据类型是地址与地址的比较
    */

    /* 
      6.完善第二天演示的简易计算机，可以做到选择加减乘除运算
    */

    /* 
      7.给一个不多于5位的正整数，要求：一、求它是几位数，二、逆序打印出各位数字。
    */
    // var num = window.prompt("");
    // var res = num.length;

    // var res2 = "";
    // function num(i) {
    //   while (i != 0) {
    //     var m = i % 10
    //     res2 += m
    //     i /= 10;
    //     i = parseInt(i)
    //   }
    // }
    // num(1234)

    // console.log(res2);

    // 位数
    // var num = 1235;
    // var i = 0;
    // while (num > 0) {
    //   num = parseInt(num / 10);
    //   i++;
    // }

    // 逆序打印
    // var num = 1235;
    // var str = "";
    // for(var  i = String(num).length - 1; i >= 0; i--){
    //   str += String(num)[i];
    // }
    // console.log(Number(str));

    // var res2 = 0;
    // for (var a = 0; a < 31; a++) {
    //   for (var b = 0; b < 31; b++) {
    //     for (var c = 0; c < 31; c++) {
    //       for (var d = 0; d < 31; d++) {
    //         for (var e = 0; e < 31; e++) {
    //           if(20*a + 10 * b + 5 * c + 2 * d + 1 * e){

    //           }
    //         }

    //       }

    //     }

    //   }
    // }



    /*
        8.(提高题)将100元整钞换成20元、10元、5元、2元、1元零钱，要求零钱总张数为30张，求有多少种换法？
    */

    // var a,b,c,d,e;
    // var num = 0;
    // for(a = 0;a <= 100; a++){
    //   for(b = 0; b <= (100-a) / 2;b++){
    //     for(c = 0; c <= (100 - a - 2 * b) / 5;c++){
    //       for(d = 0; d <= (100 - a - 2 * b - 5 * c) / 10;d++){
    //         for(e = 0; e <= (100 -a - 2 * b - 5 * c - d * 10) / 20; e++){
    //           if(a + b + c + d + e === 30 && a + b * 2 + c * 5 + d * 10 + e * 20 === 100){
    //             num++;
    //           }
    //         }
    //       }
    //     }
    //   }
    // }
    // console.log(num);

    // 每种纸币必须至少有一张，有多少种换法；
    // var a,b,c,d,e;
    // var num = 0;
    // for(a = 1;a <= 100; a++){
    //   for(b = 1; b <= (100-a) / 2;b++){
    //     for(c = 1; c <= (100 - a - 2 * b) / 5;c++){
    //       for(d = 1; d <= (100 - a - 2 * b - 5 * c) / 10;d++){
    //         for(e = 1; e <= (100 -a - 2 * b - 5 * c - d * 10) / 20; e++){
    //           if(a + b + c + d + e === 30 && a + b * 2 + c * 5 + d * 10 + e * 20 === 100){
    //             num++;
    //           }
    //         }
    //       }
    //     }
    //   }
    // }
    // console.log(num);

    // var a, b, c, d, e;
    // var num = 0;
    // for (a = 0; a <= 62; a++) {
    //   for (b = 0; b <= (62 - a) / 2; b++) {
    //     for (c = 0; c <= (62 - a - 2 * b) / 5; c++) {
    //       for (d = 0; d <= (62 - a - 2 * b - 5 * c) / 10; d++) {
    //         for (e = 0; e <= (62 - a - 2 * b - 5 * c - d * 10) / 20; e++) {
    //           if (a + b + c + d + e === 25 && a + b * 2 + c * 5 + d * 10 + e * 20 === 62) {
    //             num++;
    //           }
    //         }
    //       }
    //     }
    //   }
    // }
    // console.log(num);

    var a,b,c,d,e;
    var num = 0;
    for(a = 0;a <= 100; a++){
      for(b = 0; b <= (100-a) / 2;b++){
        for(c = 0; c <= (100 - a - 2 * b) / 5;c++){
          for(d = 0; d <= (100 - a - 2 * b - 5 * c) / 10;d++){
            for(e = 0; e <= (100 -a - 2 * b - 5 * c - d * 10) / 20; e++){
              if(a + b + c + d + e === 30 && a + b * 2 + c * 5 + d * 10 + e * 20 === 100 && a * b * c * d * e != 0){
                num++;
              }
            }
          }
        }
      }
    }
    console.log(num);



  </script>
</body>

</html>